
<html>
  
  <HEAD>
    
    <link rel="stylesheet" href="style/default.css" type="text/css">
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  
    <title>JAXB RI 2.1.9 fcs -- 1.0.x Changelog
    </title>
    <link rel="alternate" href="https://jaxb.dev.java.net/servlets/ProjectNewsRSS" type="application/rss+xml">
  </HEAD>
  
  
  <BODY>
    <h1>
      <banner>
    Java
        <sup>
          <font size="-2">TM</font>
        </sup> Architecture for XML Binding
  
      </banner>
      <br>
      1.0.x Changelog 
    
    </h1>
    <center>
      <b>Implementation Version:</b> 2.1.9 fcs
      <br>
    </center>
    <table class="navbar" cellspacing="0">
      <tr>
        <td class="inactive">
          <a href="index.html">JAXB 2.0</a>
        </td>
        <td class="inactive">
          <a href="xjc.html">Tools</a>
        </td>
        <td class="active">
          <a>JAXB 1.0.x</a>
        </td>
        <td class="inactive">
          <a href="vendor.html">JAXB RI Extensions</a>
        </td>
        <td class="inactive">
          <a href="community.html">JAXB Community</a>
        </td>
      </tr>
    </table>
    <div class="subnavbar">
      <ul>
        <li class="first">
          <a href="jaxb-1_0.html">
            <span>Release Notes </span>
          </a>
        </li>
        <li>
          <a href="changelog.html">
            <span class="active">Changelog </span>
          </a>
        </li>
      </ul>
    </div>
    
    <header></header>

    
    <p>Please refer to the 
      <a href="changelog2.html">JAXB 2.0.x changelog</a> for the most recent changes.
    
    
    
    <a name="diffs-to-2.0"></a>
    
    <h2>Changes between 1.0.6 FCS and 2.0 FCS </h2>
      
    <p>No change is made to the 1.0-compatible compiler in JAXB 2.0 FCS since 1.0.6
    
    
      <a name="diffs-to-1.0.6"></a>
    
    
    <h2>Changes between 1.0.5 FCS and 1.0.6 FCS </h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation
         since the JAXB version 1.0.3 FCS release.
      
      
    <ul>
        
      <li>The license was changed from Sun Binary Code License (BCL) to 
        <a href="http://www.sun.com/cddl/">Common Development and Distribution License (CDDL)</a>, allowing free-er redistribution.
        
      </li>
      <li>JAXB 1.0.6 jars are made available to 
        <a href="https://maven-repository.dev.java.net/nonav/repository/">the java.net maven repository</a>.
      
      </li>
    </ul>
    
    
    <a name="diffs-to-1.0.5"></a>
    
    <h2>Changes between 1.0.4 FCS and 1.0.5 FCS </h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation
         since the JAXB version 1.0.3 FCS release.
      
      
    <ul>
        
      <li>
        <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=55">Issue 55 - build id not propagated to localize message bundles</a>
      </li>
        
      <li>
        <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=62">Issue 62 - Add customizations support</a>
      </li>
        
      <li>
        <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=64">Issue 64 - Generate getEnumMap() method in enum classes</a>
      </li>
        
      <li>
        <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=65">Issue 65 - Add xdoclets support to JDocComment</a>
      </li>
        
      <li>
        <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=74">Issue 74 - Allow arbitrary extensions/customizations in bindings</a>
      </li>
        
      <li>
        <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=82">Issue 82 - Attribute-driven fields are not customized</a>
      </li>
        
      <li>Fixed a bug in handling of inner class in the model group binding mode.
        </li>
      <li>Other minor bug fixes that we lost track of
      </li>
    </ul>
    
    
    <a name="diffs-to-1.0.4"></a>
    
    <h2>Changes between 1.0.3 FCS and 1.0.4 FCS </h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation
         since the JAXB version 1.0.3 FCS release.
      

      
    <ul>
        
      <li>Bug Fixes
          
        <ul>
            
          <li>IssueTracker:
              
            <ul>
                
              <li>
                <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=15">15 - can't parse W3 SOAP 2003-05 envelope XML schema: "xml:lang"</a>
              </li>
                
              <li>
                <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=18">18 - Performance Improvement in NamespaceContextImpl.java</a>
              </li>
                
              <li>
                <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=19">19 - Performance Improvement in NamespaceContextImpl.java</a>
              </li>
                
              <li>
                <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=24">24 - XJC doesn't work with directories with spaces in them</a>
              </li>
                
              <li>
                <a href="https://jaxb.dev.java.net/issues/show_bug.cgi?id=28">28 - ValidatorImpl does not initialize DatatypeConverter</a>
              </li>
              
            </ul>
            
          </li>
            
          <li>fixed an NPE that affected Acord and UBL 1.0 schemas</li>
            
          <li>found and fixed a StackOverflowError in XJC</li>
            
          <li>xjc handles non-existant ouput directories more gracefully</li>
            
          <li>found and removed some dependencies on jdk1.4</li>
            
          <li>fixed a bug in the entity resolver handling</li>
          
        </ul>
        
      </li>

        
      <li>Other
          
        <ul>
            
          <li>updated UBL sample app to UBL 1.0 schema (Visit the 
            <a href="https://jwsdp.dev.java.net/ubl/index.html">UBL interest</a> page for more information).
          </li>
          
        </ul>
        
      </li>
      
    </ul>

    
    <a name="diffs-to-1.0.3"></a>
    
    <h2>Changes between 1.0.2 FCS and 1.0.3 FCS </h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation 
         since the JAXB version 1.0.2 FCS release.
      
      
      
    <ul>
        
      <li>Bug Fixes
          
        <ul>
              
          <li>Improved command line error handling</li>
              
          <li>Fixed bug where JAXB crashed when using JAXBResult</li>
              
          <li>Improved line number reporting for DTD compilation messages</li>
              
          <li>Improved naming collision error messages</li>
              
          <li>Improved DTD wildcard handling</li>
              
          <li>Improved error reporting when &lt;javaType&gt; contains an
                  undefined simple type</li>
              
          <li>Fixed a couple of bugs related to XJC error handling with
                  external binding files</li>
              
          <li>Fixed a bug that was causing an exception when Unmarshalling 
                  an element with int list as value</li>
              
          <li>Fixed a bug related to the compilation of multiple schemas
                  that import a common base schema</li>
        
        </ul>
      
      </li>  
      
      
      <li>Performance Enhancements
        
        <ul>
            
          <li>Fixed a memory leak in XSOM</li>
            
          <li>Modified XJC to use less call stack to avoid StackOverflowErrors</li>
            
          <li>Generated ObjectFactory classes now specify an initialCapaicty
                on their defaultImpl HashMaps.  This should obviate the need to
                rehash at runtime for very large schemas.</li>
            
          <li>Improved memory usage in XJC</li>
            
          <li>Force string interning during unmarshalling to improve runtime
                performance</li>
            
          <li>Reuse AttributesImpl object rather than reallocate</li>
            
          <li>Lazily instantiate ListImpl classes in the generated code to 
                save on memory usage</li>
        
        </ul>
      
      </li>

      
      <li>Other
        
        <ul>
            
          <li>Added a new JAXB RI vendor customization that allows for
                
            <a href="vendorCustomizations.html#lwruntime">partial-code 
                generation</a> (reduced functionality bindings)
          </li>
            
          <li>Began posting weekly 
                
            <a href="https://jaxb.dev.java.net/binaryDrops.html">binary</a> 
                and 
                
            <a href="https://jaxb.dev.java.net/sourceDrops.html">source</a> 
                bundles to java.net
          </li>
            
          <li>Added a -quiet option on the XJC command line to supress verbose
                output</li>
        
        </ul>
      
      </li>
    
    </ul>

    
    <a name="diffs-to-1.0.2"></a>
    
    <h2>Changes between 1.0.1 FCS and 1.0.2 FCS </h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation 
         since the JAXB version 1.0.1 FCS release.
      
    
      
    <ul>
        
      <li>Additional schema support (available only in "extension mode")
          
        <ul>
            
          <li>JAXB now supports 
            <tt>xsi:type</tt> (XSD 
            <a href="vendorSchemaLangs.html#typesub">type substitution</a>).
          </li>
            
          <li>JAXB now supports 
            <tt>
              <a href="vendorSchemaLangs.html#block">block</a>, 
              <a href="vendorSchemaLangs.html#block">abstract</a>, 
              <a href="vendorSchemaLangs.html#block">final</a>, 
              <a href="vendorSchemaLangs.html#block">blockDefault</a>, and 
                
              <a href="vendorSchemaLangs.html#block">finalDefault</a>
            </tt> attributes for the 
            <tt>&lt;complexType&gt;, &lt;element&gt;, 
                and &lt;schema&gt;</tt> elements.
          </li>
          
        </ul>
        
      </li>
        
        
      <li>Enhancements
          
        <ul>
            
          <li>
            <tt>XJCTask</tt> no longer fails if the directory specified by
                an enclosed 
            <tt>&lt;produces&gt;</tt> doesn't exist.
          </li>
            
          <li>Marshaller error messages have been revised to be more informative.</li>
            
          <li>The marshaller now supports marshalling of 
            <tt>QName</tt>s.
          </li>
            
          <li>
            <tt>
              <a href="vendorCustomizations.html#superclass">xjc:superClass</a>
            </tt> now supported for DTD.
          </li>
            
          <li>
            <tt>javaType</tt> customization now supported for RELAX NG.
          </li>
            
          <li>A new vendor extension suppresses 
            <tt>&lt;?xml?&gt;.</tt>
          </li>
            
          <li>A new vendor extension allows you to set 
            <tt>&lt;!DOCTYPE&gt;</tt>
          </li>
            
          <li>
            <tt>NamespacePrefixMapper</tt> now allows namespaces to be
                declared within greater scope.
          </li>
            
          <li>
            <tt>xjc</tt> is now more tolerant of different XML parser
                implementations.
          </li>
            
          <li>Ad hoc performance enhancements</li>
            
          <li>&lt;xs:documentation&gt;s are now also picked up for javadoc comments 
                for classes</li>
          
        </ul>
        
      </li>
          
        
      <li>Bug fixes 
          
        <ul>
            
          <li>
            <tt>xjc</tt> now rejects a 
            <tt>javaType</tt> customization not
                 enclosed by a 
            <tt>property</tt> tag.
          </li>
            
          <li>
            <tt>xjc</tt> now emits a warning when compiling a schema with
                no global element declaration.
          </li>
            
          <li>The 
            <tt>propagateEvent</tt> method in 
            <tt>ErrorHandlerAdaptor</tt> 
                now passes the right boolean to 
            <tt>handleEvent</tt>.
          </li>
            
          <li>A condition where a schema wouldn't validate even after being
                revised to be valid has been fixed.</li>
            
          <li>
            <tt>xjc</tt> now handles highly cyclic complex types
                better.
          </li>
            
          <li>
            <tt>xjc</tt> now provides an application specific error in a
                case where it had been throwing an 
            <tt>InternalError</tt>.
          </li>
            
          <li>
            <tt>JAXBException.printStackTrace(PrintWriter)</tt> now works.
          </li>
            
          <li>
            <tt>xjc</tt> now generates javadoc for 
            <tt>xsd:attribute@use</tt> 
                and 
            <tt>xsd:attribute@default</tt>.
          </li>
            
          <li>
            <tt>xjc</tt> now honors vendor extensions in an external
                binding file.
          </li>
            
          <li>
            <tt>xjc</tt> now processes 
            <tt>javadoc</tt> customizations
                within a 
            <tt>property</tt>.
          </li>
            
          <li>A condition where 
            <tt>xjc</tt> wasn't resolving a reference to
                a type in an included fragment has been fixed.
          </li>
            
          <li>A condition where the runtime would marshal an attribute with
                an empty namespace prefix has been fixed.</li>
            
          <li>A condition where the runtime wouldn't validate an instance
                with a derived attribute has been fixed.</li>
            
          <li>JAXB now handles the time zone offset properly.</li>
            
          <li>Validation no longer fails when an 
            <tt>xsd:choice</tt> has
                attributes defined by an 
            <tt>xsd:element</tt> type.
          </li>
          
        </ul>
        
      </li>
      
    </ul>
    
    
    <a name="diffs-to-1.0.1"></a>
    
    <h2>Changes between 1.0 FCS and 1.0.1 FCS </h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation 
         since the JAXB version 1.0 FCS release.
      
    
      
    <ol>
        
      <li>JAR file changes &amp; additions:
          
        <blockquote>
          
          <table border="1" width="75%">
            
            <tr>
              
              <td>
                <tt>$JWSDP_HOME/jaxb/libs/jaxb-ri.jar</tt>
              </td>
              
              <td>Renamed 
                <tt>$JWSDP_HOME/jaxb/libs/jaxb-impl.jar</tt>
              </td>
            
            </tr>
            
            <tr>
              
              <td>
                <tt>$JWSDP_HOME/jwsdp-shared/lib/relaxngDatatype.jar</tt>
              </td>
              
              <td>New JAR file
                <sup>
                  <font size="-2">*</font>
                </sup>
              </td>
            
            </tr>
            
            <tr>
              
              <td>
                <tt>$JWSDP_HOME/jwsdp-shared/lib/xsdlib.jar</tt>
              </td>
              
              <td>New JAR file
                <sup>
                  <font size="-2">*</font>
                </sup>
              </td>
            
            </tr>
            
            <tr>
              
              <td colspan="2">
                
                <sup>
                  <font size="-2">*</font>
                </sup> The contents of the 
                <tt>relaxngDatatype.jar</tt> and
                
                <tt>xsdlib.jar</tt> files used to be contained within the 
                <tt>$JWSDP_HOME/jaxb/libs/jaxb-libs.jar</tt> file, 
                but were broken out so they could be shared with other Java WSDP component 
                technologies.
              
              </td>
            
            </tr>
          
          </table>
          
        </blockquote>
        
      </li>
        
      <li>There are several new compiler switches.  Please read about them in the
            
        <a href="xjc.html#switches">xjc notes</a>.
      </li>
        
      <li>Many of the JAXB runtime classes that used to be contained in the 
            
        <tt>jaxb-ri.jar</tt> file are now generated by the binding compiler 
            as part of the client package.  You can find these classes under 
            one of the generated packages.  In the following example, the new 
            generated runtime classes are contained in 
            
        <tt>primer.po.impl.runtime</tt>:
            
        <pre>
     parsing a schema...
     compiling a schema...
     primer\po\impl\CommentImpl.java
     primer\po\impl\ItemsImpl.java
     primer\po\impl\JAXBVersion.java
     primer\po\impl\PurchaseOrderImpl.java
     primer\po\impl\PurchaseOrderTypeImpl.java
     primer\po\impl\USAddressImpl.java
     <font color="red">primer\po\impl\runtime\Discarder.java
     primer\po\impl\runtime\AbstractUnmarshallingEventHandlerImpl.java
     primer\po\impl\runtime\XMLSerializable.java
     primer\po\impl\runtime\AbstractGrammarInfoImpl.java
     primer\po\impl\runtime\MarshallerImpl.java
     primer\po\impl\runtime\ContentHandlerAdaptor.java
     primer\po\impl\runtime\ValidatableObject.java
     primer\po\impl\runtime\DefaultJAXBContextImpl.java
     primer\po\impl\runtime\ErrorHandlerAdaptor.java
     primer\po\impl\runtime\ValidatingUnmarshaller.java
     primer\po\impl\runtime\GrammarInfoFacade.java
     primer\po\impl\runtime\XMLSerializer.java
     primer\po\impl\runtime\ValidationContext.java
     primer\po\impl\runtime\Util.java
     primer\po\impl\runtime\UnmarshallingEventHandler.java
     primer\po\impl\runtime\UnmarshallingContext.java
     primer\po\impl\runtime\UnmarshallableObject.java
     primer\po\impl\runtime\NamespaceContext2.java
     primer\po\impl\runtime\NamespaceContextImpl.java
     primer\po\impl\runtime\MSVValidator.java
     primer\po\impl\runtime\ValidatorImpl.java
     primer\po\impl\runtime\UnmarshallingEventHandlerAdaptor.java
     primer\po\impl\runtime\SAXMarshaller.java
     primer\po\impl\runtime\UnmarshallerImpl.java
     primer\po\impl\runtime\SAXUnmarshallerHandlerImpl.java
     primer\po\impl\runtime\GrammarInfo.java
     primer\po\impl\runtime\PrefixCallback.java
     primer\po\impl\runtime\SAXUnmarshallerHandler.java</font>
     primer\po\Comment.java
     primer\po\Items.java
     primer\po\ObjectFactory.java
     primer\po\PurchaseOrder.java
     primer\po\PurchaseOrderType.java
     primer\po\USAddress.java
     primer\po\bgm.ser
     primer\po\jaxb.properties
            </pre>
            
        <p>
              If you are compiling multiple schemas and would like to share the generated
              runtime classes across all of the packages, use the "
          <tt>-use-runtime</tt>" 
          <a href="xjc.html#switches">compiler switch</a>.
        
        
      </li>
        
      <li>The JAXB RI has added vendor-specific properties that allow you to control the
            behavior of some of the runtime classes.  See the 
        <a href="vendor.html#properties">
            JAXB Vendor Extension</a> documentation for additional information.
      </li>
        
      <li>Additional features supported (
        <a href="vendorSchemaLangs.html#subgroup">element substitution</a>, 
        <a href="vendorCustomizations.html#dom">DOM customization</a>, 
            enhanced pretty printing, better I18N support).
      </li>
        
      <li>The 
        <tt>$JWSDP_HOME/jaxb/examples</tt> directory was renamed 
            
        <tt>$JWSDP_HOME/jaxb/samples</tt> to follow the same directory 
            naming conventions as the other Java WSDP component technologies.  
            Also, all of the 
        <tt>SampleApp
          <em>#</em>
        </tt> directories were 
            give more descriptive names - see the 
        <a href="samples.html#samples">Sample Apps page</a>
            for more information.
      </li>
        
      <li>Improved 
        <a href="xjcTask.html">XJC Ant Task</a> support.
      </li>
        
      <li>
        <tt>javax.xml.namespace.QName</tt> has been updated.  See the 
            
        <a href="java.sun.com/webservices/docs/1.5/api/javax/xml/namespace/QName.html">QName javadocs</a>
      </li>
      
    </ol>
      
      
    
    <a name="diffs-to-1.0"></a>
    
    <h2>Changes between 1.0 Beta and 1.0 FCS</h2>
      
    <p>The following list summarizes significant changes made to the JAXB Reference Implementation 
         since the beta release.
      
    
      
    <ol>
        
      <li>
           
        <p>Factory methods in schema-derived 
          <tt>ObjectFactory</tt> classes were static
           in Beta and are now instance methods in JAXB v1.0.

           
        
        <p>Class 
          <tt>ObjectFactory</tt> is specified in section 4.2 of JAXB v1.0 specification.
           The rationale for this change was to enable associating implementation
           specific property/value pairs with object creation.

           
        
        <p>Illustration of change:
           
        
        <p>Object Factory Creation fragment in Beta:
   
    
          <pre>
    Comment comment = ObjectFactory.createComment("foo");
    </pre>

           
        
        <p>Object Factory Creation in FCS:
   
    
          <pre>
    ObjectFactory of = new ObjectFactory();
    Comment comment = of.createComment("foo");
    </pre>
        
        
      </li>
        
        
      <li>
        
        <p>A JAXB property representing an XML Schema element reference
           was not bound to Java accessor methods as specified. The basetype of 
           the JAXB property was the referenced element's Java element 
           interface in the Beta release, when it should have been the Java type 
           representing the XML element's datatype. The rationale for this 
           change is that the Java method signatures should not be 
           impacted by whether XML element content is represented as a 
           local element declaration or an element reference.
     
        
        <p>This change manifests itself as a compilation error when a JAXB property
        should be passing in an instance of a builtin Java datatype,
        the XML element's type, rather than its element instance. All global
        element's with XML complex types are not impacted by this change,
        only references to global elements where the XML global element's type
        is an XML Schema builtin datatype that is bound to a Java builtin type
        require any change. 

        
        <p>Illustration of change:

        
        <p>For example, given schema fragments:

          <pre>
   &lt;xs:complexType name="AComplexType"/&gt;
   &lt;xs:element name="GlobalElement" type="AComplexType"/&gt;
   &lt;xs:element name="Comment" type="xs:string"/&gt;
   &lt;xs:complexType name="refCommentExample"&gt;
      &lt;xs:sequence&gt;
         &lt;xs:element ref="Comment"/&gt;
         &lt;xs:element ref="GlobalElement"/&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
</pre>

        
        
        <p>Beta generated accessors for JAXB properties, 
        
          <tt>Comment</tt> and 
          <tt>GlobalElement</tt>,
        with the base type corresponding to the Java element interface, not
        the Java datatype for the XML element's type.

        
        
        <p>The following methods were generated with the Beta version:
        

          <pre>
interface AClass {
  Comment getComment();
  void setComment(Comment value);
  GlobalElement getGlobalElement();
  void setGlobalElement(GlobalElement value);
}
</pre>

        
        
        <p>The following methods were generated with the FCS version:


          <pre>        
interface AClass {
  String getComment();
  void setComment(String value);
  AComplexType getGlobalElement();
  // Parameter "value" can be an instance of an XML element's type Or
  // an instance of an XML element's interface.
  // Thus, one can pass an instanceof GlobalElement interface OR an
  // instance of AComplexType to setGlobalElement.
  void setGlobalElement(AComplexType value);
}
</pre>
        
        
      </li>

        
      <li>        
          The Customization: javaType 
        <tt>printMethod</tt> and 
          
        <tt>parseMethod</tt> attributes are
          required to be specified more frequently in the FCS release
          than they had to be in the Beta release. This specification
          change was the result of not being able to properly
          handle all the defaulting cases in the Beta release.
          See Section 6.9 "&lt;javaType&gt; Declaration" in JAXB v1.0 Specification
          for more details.
        
      </li>

        
      <li>
        Additional APIs:
            
        <ul>
                
          <li>
            <tt>getProperty()</tt> / 
            <tt>setProperty()</tt> added to 
                    
            <tt>javax.xml.bind.Unmarshaller</tt>
          </li>
                
          <li>
            <tt>getProperty()</tt> / 
            <tt>setProperty()</tt> added to 
                    
            <tt>javax.xml.bind.Validator</tt>
          </li>
                
          <li>
            <tt>getProperty()</tt> / 
            <tt>setProperty()</tt> added to 
                    all of the generated 
            <tt>ObjectFactory</tt> classes
          </li>
                
          <li>
            <tt>getNode()</tt> added to 
            <tt>javax.xml.bind.Marshaller</tt>
          </li>
            
        </ul>
        
      </li>        
      
    </ol>


    
    <hr>
    
    <div class="footer">
      $Revision: 1.1 $
      <br>
      $Date: 2007/12/05 00:49:15 $
    
    </div>
  


  </BODY>
</html>